{
struct xdg_activation_token_v1 *token;
struct wl_event_queue *event_queue;
+ struct wl_surface *wl_surface = NULL;
+ GdkWindow *focus_window;
event_queue = wl_display_create_queue (display_wayland->wl_display);
xdg_activation_token_v1_set_serial (token,
_gdk_wayland_seat_get_last_implicit_grab_serial (seat, NULL),
gdk_wayland_seat_get_wl_seat (seat));
- xdg_activation_token_v1_set_surface (token,
- gdk_wayland_window_get_wl_surface (window));
+
+ focus_window = gdk_wayland_device_get_focus (gdk_seat_get_keyboard (seat));
+ if (focus_window)
+ wl_surface = gdk_wayland_window_get_wl_surface (focus_window);
+ if (wl_surface)
+ xdg_activation_token_v1_set_surface (token, wl_surface);
+
xdg_activation_token_v1_commit (token);
while (startup_id == NULL)